# 使用 Ubuntu 22.04 作为基础镜像
FROM ubuntu:22.04

# 设置环境变量，避免交互式安装提示
ENV DEBIAN_FRONTEND=noninteractive

# 更新包列表并安装 CoTURN
RUN apt-get update && apt-get install -y \
    coturn \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# 创建 CoTURN 配置文件目录
RUN mkdir -p /etc/coturn

# 复制自定义配置文件（可选，如果你有独立的配置文件）
# 如果不需要，可以直接在下方通过 echo 创建
# COPY turnserver.conf /etc/coturn/turnserver.conf

# 配置 CoTURN 的基本设置（通过命令生成配置文件）
RUN echo "listening-port=3478" > /etc/coturn/turnserver.conf && \
    echo "verbose" >> /etc/coturn/turnserver.conf && \
    echo "realm=example.com" >> /etc/coturn/turnserver.conf

# 如果需要 TURN 功能，添加用户名和密码（可选）
# RUN echo "user=testuser:testpass" >> /etc/coturn/turnserver.conf

# 暴露 STUN/TURN 默认端口
EXPOSE 3478/udp 3478/tcp

# 设置容器启动时运行 CoTURN
CMD ["turnserver", "-c", "/etc/coturn/turnserver.conf", "-v"]

# 可选：指定外部 IP（需要在运行时通过环境变量传入）
# ENV EXTERNAL_IP=<你的公网IP>
# RUN echo "external-ip=${EXTERNAL_IP}" >> /etc/coturn/turnserver.conf